package com.xuzmian.demo.kotlin

import java.io.File

/**
 * 类型别名:类型别名为现有类型提供替代名称。 如果类型名称太长，你可以另外引入较短的名称，并使用新的名称替代原类型名。
 * 它有助于缩短较长的泛型类型。类型别名不会引入新类型。 它们等效于相应的底层类型。 当你在代码中添加
 * typealias Predicate<T> 并使用 Predicate<Int> 时，Kotlin 编译器总是把它扩展为 (Int) -> Boolean。
 */
typealias FileTable<K> = MutableMap<K, MutableList<File>>

/**
 * 为函数类型提供另外的别名：
 */
typealias Predicate<T> = (T) -> Boolean

/**
 * 为内部类和嵌套类创建新名称：
 */
typealias AInner = Outer.Inner